package com.vecspace.scheduler.job;

import java.util.Date;

import com.vecspace.web.servlet.model.Param;
import com.vecspace.web.servlet.model.Path;

public interface TJob {
	/**作业是否正在执行。
	 * 
	 * @return 
	 * @author wanghua
	 */
	@Path("executing")
	boolean executing();
	
	boolean execute(String args);
	/**作业的名称，可以在定义对象时指定
	 * @return 
	 * @author wanghua
	 */
	@Path("jobName")
	String getJobName();

	/**返回最后一次执行的开始时间
	 * 
	 * @return 
	 * @author wanghua
	 */
	@Path("lastRuningStartTime")
	Date getLastRuningStartTime();
	/**返回最后一次执行的结束时间
	 * 
	 * @return
	 * @author wanghua
	 */
	@Path("lastRuningEndTime")
	Date getLastRuningEndTime();
	
	/**返回当前作业的执行进度[0-100]
	 * 
	 * @return 返回值范围[0-100]
	 * @author wanghua
	 */
	@Path("progress")
	int getProgress();
	
	@Path("executeCommand")
	Object executeCommand(@Param("cmd") String cmd, @Param("args") String args);
}
